import pandas as pd
import numpy as np

data_dict = {
    '姓名': ['张三', '李四', '王五', '赵六', '钱七'],
    '年龄': [25, 30, 35, 28, 32],
    '城市': ['北京', '上海', '广州', '深圳', '杭州'],
    '薪资': [8000, 12000, 15000, 11000, 13000],
    '部门': ['技术', '销售', '技术', '市场', '销售']
}

df = pd.DataFrame(data_dict)

np.random.seed(42)
np_data = np.random.randint(1, 100, (5, 4))
df_from_numpy = pd.DataFrame(
    np_data, 
    columns=['特征A', '特征B', '特征C', '特征D'],
    index=[f'样本{i}' for i in range(1, 6)]
)


print("=== DataFrame基本属性和信息 ===")

# 使用员工数据DataFrame
print("DataFrame基本属性:")
print("形状（行数，列数）:", df.shape)
print("总元素数量:", df.size)
print("维度:", df.ndim)
print("列名:", df.columns.tolist())
print("索引:", df.index.tolist())
print("是否为空:", df.empty)

# 数据类型信息
print("\n数据类型信息:")
print(df.dtypes)
print("\n详细数据类型:")
print(df.info())

# 内存使用情况
print("\n内存使用情况:")
print(df.memory_usage(deep=True))

# 获取数值列和非数值列
print("\n数值列:")
print(df.select_dtypes(include=[np.number]).columns.tolist())
print("\n非数值列:")
print(df.select_dtypes(exclude=[np.number]).columns.tolist())

# 基本统计信息
print("\n=== 基本统计信息 ===")
print("数值列统计:")
print(df.describe())

print("\n包含非数值列的统计:")
print(df.describe(include='all'))

# 各列的空值情况
print("\n空值检查:")
print(df.isnull().sum())

# 各列的唯一值数量
print("\n各列唯一值数量:")
print(df.nunique())
